//createRouter 用于创建路由实例
//createWebHistory 用于创建基于浏览器 history 的路由实例
// 路由模式：history 模式，适用于单页面应用
// 路由配置：routes 数组，包含路由信息
// 路由组件：components 目录下，包含路由组件
// 路由视图：views 目录下，包含路由视图
// 路由别名：alias 属性，可为路由设置别名，方便使用
// 路由重定向：redirect 属性，可将某些路由重定向到其他路由
// 路由前置守卫：beforeEach 钩子，可在进入某个路由前执行一些操作
// 路由后置守卫：afterEach 钩子，可在进入某个路由后执行一些操作
// 路由全局解析守卫：beforeResolve 钩子，可在路由被解析前执行一些操作
// 路由全局后置守卫：afterEach 钩子，可在所有路由被解析后执行一些操作
// 路由错误处理：error 钩子，可捕获路由错误并执行一些操作
// 路由懒加载：component 属性，可实现路由组件的懒加载
import { createRouter, createWebHistory } from 'vue-router'
import Login from '@/views/Login/index.vue'
import Layout from '@/views/Layout/index.vue'
import Home from '@/views/Home/index.vue'
import Category from '@/views/Category/index.vue'
import SubCategory from '@/views/SubCategory/index.vue'

const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  // path与component的映射关系
  routes: [
    {
      path: '/',
      component: Layout,
      children: [
        {
          // 默认页面会得到渲染，因此这里设置为空字符串
          path:'',
          component: Home
        },
        {
          path: 'category/:id',
          component: Category
        },
        {
          path:'category/sub/:id',
          component: SubCategory
        }
      ]
    },
    {
      path: '/login',
      component: Login
    }
  ],

  //路由滚动行为配置
  scrollBehavior(to, from, savedPosition) {
    return { top: 0 }
  }
})

export default router
